跳到主要内容

数据接入能力详细说明

最后 更新

APO 向导式可观测性平台为用户提供了一站式的可观测性数据展示和分析能力。APO不仅能够展示通过APO采集器采集到的数据,也能接入已有监控数据,无需对现有监控系统进行大规模改动即可使用现代化的可观测性平台。

APO 支持接入的监控数据按照类型可以分为以下几类:

  • 链路追踪
  • 指标
  • 日志
  • 告警事件

链路追踪

APO 提供了 OneAgent 为应用自动注入链路追踪探针,无需用户手动配置。对于Java应用,如果您已经在应用中使用了链路追踪探针,APO 支持采用对接的方式接入已有链路追踪数据,同时能够使用告警分析功能。

接入方案一:使用现有探针,APO 对接链路追踪查询 API

tracing1

支持的Tracing 系统

  • Opentelemetry Java Instrument 1.11.x 以上版本
  • SkyWalking 8.x 及以上版本
  • PinPoint 1.8.0 及以上版本
  • Elastic APM 1.x 版本

对接方式

  • APO 需要在每台主机上安装一个Agent用于获取主机上的进程信息
  • APO 服务端需要能够连接 Tracing系统的查询API,用于查询单次链路追踪数据
  • 优点:无需改动已有的Tracing系统
  • 缺点:仅支持 Java 语言;缺失应用对外调用请求的指标

具体步骤

在安装 APO OneAgent 时采用 trace-sidecar 模式安装,并在安装 APO Server 时提供 Tracing 查询 API 地址。

接入方案二:使用现有探针,将链路追踪数据发送到 APO

tracing2

支持的 Tracing 探针

  • Opentelemetry Java Instrument 1.11.x 以上版本
  • SkyWalking 8.x 及以上版本
  • 其他支持采用 OTLP 格式输出 Traces 数据的探针

对接方式

  • APO 需要在每台主机上安装一个 Agent 用于获取主机上的进程信息
  • 将探针数据发送地址修改为本机的 APO OneAgent 地址
  • 优点:支持Java、Go、Python等各类编程语言;能够使用APO的全量功能
  • 缺点:需要调整Tracing探针数据的发送地址

具体步骤

在安装 APO OneAgent 时采用 trace-collcetor 模式安装,随后将现有探针的数据发送地址修改为 APO 的收集器地址,具体为:

  • 对于支持 OTLP 格式输出的 Traces 数据:
    • 如果您使用 gRPC 协议发送数据,请使用 http://<本机IP>:4317
    • 如果您使用 HTTP 协议发送数据,请使用 http://<本机IP>:4318
  • 对于 SkyWalking:
    • 如果您使用 gRPC 协议发送数据,请使用 http://<本机IP>:11800
    • 如果您使用 HTTP 协议发送数据,请使用 http://<本机IP>:12800

指标

APO 通过 OneAgent 能够自动采集环境中的指标数据,并存储到 VictoriaMetrics 中。默认情况下,会采集以下指标:

  • node-exporter:主机层面指标
  • cadvisor:容器层面指标
  • kubelet:Kubernetes 中 kubelet 指标

由于采集和存储此类指标的资源消耗较小,建议直接采用 APO OneAgent 采集此类数据。如果您已经采集以上指标并存储到了类 Prometheus 数据库中,期望不使用 APO OneAgent 再次采集数据,APO也支持对接已有的类 Prometheus 数据库。

接入方案一:APO 平台对接已有指标存储系统

支持的存储系统

  • Prometheus
  • VictoriaMetrics
  • Thanos

对接方式

  • 在安装 APO 时修改 VictoriaMetrics 地址为类 Prometheus 数据库地址(支持Prometheus与VictoriaMetrics),参见对接文档
  • 如果您不需要重复采集以上指标,请在安装时禁用 APO OneAgent 的 metrics 模块

接入方案二:使用现有指标采集器,将数据发送到 APO

支持的数据格式

  • OTLP 格式(HTTP/gRPC)
  • Prometheus 规范格式

对接方式

  • 如果您的指标采集器支持 OTLP 格式输出数据
    • 如果输出协议为HTTP,请将数据发送地址修改为 http://<APO-IP>:30317
    • 如果输出协议为gRPC,请将数据发送地址修改为 http://<APO-IP>:30318
  • 如果您的指标采集器使用 Prometheus 格式输出数据(exporter类型采用HTTP 端点/metrics暴露指标)
    • 请打开 APO 中配置文件apo-grafana-alloy-config,参考配置文档将指标采集器的地址添加到配置文件中

全量日志

APO 通过 OneAgent 能够自动采集环境中应用的日志,并存储到ClickHouse中。APO 当前对接全量日志有两种方案:接收现有日志采集器的数据或直接查询数据库中的日志。

接入方案一:使用现有日志采集器,将数据发送到 APO

支持的日志采集器

  • ilogtail
  • logstash
  • fluent
  • vector

对接方式

  • 修改现有的日志采集的数据发送地址
  • 在 APO vector中对采集日志的字段进行重命名

具体步骤

参见配置说明

接入方案二:APO 平台对接已有日志数据库

该方案目前仅支持对接存入ClickHouse的日志。

对接方式

  • 安装APO时修改ClickHouse地址为日志所在ClickHouse地址。参见文档

告警事件

如果您已经使用告警平台产生告警,但期望使用 APO 的告警分析功能对所有告警进行分析,您可以将外部告警事件接入 APO 平台。

目前 APO 平台仅支持接入 AlertManager 产生的告警,其他告警平台正在陆续适配中。

接入步骤

  1. 打开 AlertManager 的配置文件
  2. receivers部分中增加新的receiver,命名为apo-alert-collector,并将该receiver配置在route部分,如下所示:
global:
resolve_timeout: 5m
receivers:
- name: apo-alert-collector
webhook_configs:
- url: http://apo-backend-svc:8080/api/alerts/inputs/alertmanager
route:
group_by:
- alertname
group_interval: 1m
group_wait: 30s
receiver: alert-collector
repeat_interval: 30m

  1. 调用 AlertManager 的GET /-/reload接口重新加载配置文件或重启 AlertManager 使配置生效。